<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>gpiops: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">gpiops
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">gpiops Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The Xilinx PS GPIO driver. This driver supports the Xilinx PS GPIO Controller.</p>
<p>The GPIO Controller supports the following features:</p>
<ul>
<li>6 banks</li>
<li>Masked writes (There are no masked reads)</li>
<li>Bypass mode</li>
<li>Configurable Interrupts (Level/Edge)</li>
</ul>
<p>This driver is intended to be RTOS and processor independent. Any needs for dynamic memory management, threads or thread mutual exclusion, virtual memory, or cache control must be satisfied by the layer above this driver.</p>
<p>Here is GPIO Bank and Pin mapping information for different platforms. Zynq: PS GPIO contain 4 banks and 118 pins Bank 0 MIO pins 0 - 31 Bank 1 MIO pins 32 - 53 Bank 2 MIO pins 54 - 85 Bank 3 EMIO signals 86 - 117</p>
<p>Zynq Ultrascale+ MP: PS GPIO contain 6 banks and 174 pins Bank 0 MIO pins 0 - 25 Bank 1 MIO pins 26 - 51 Bank 2 MIO pins 52 - 77 Bank 3 EMIO signals 78 - 109 Bank 4 EMIO signals 110 - 141 Bank 5 EMIO signals 142 - 173</p>
<p>Versal: Two GPIOPS instances PMC GPIO and PS GPIO PMC GPIO contain 4 banks and 116 pins Bank 0 MIO pins 0 - 25 Bank 1 MIO pins 26 - 51 Bank 3 EMIO signals 52 - 83 Bank 4 EMIO signals 84 - 115 PS GPIO contains 2 banks and 58 pins Bank 0 MIO pins 0 - 25 Bank 3 EMIO signals 26-57</p>
<p>This driver supports all the features listed above, if applicable.</p>
<p><b>Driver Description</b></p>
<p>The device driver enables higher layer software (e.g., an application) to communicate to the GPIO.</p>
<p><b>Interrupts</b></p>
<p>The driver provides interrupt management functions and an interrupt handler. Users of this driver need to provide callback functions. An interrupt handler example is available with the driver.</p>
<p><b>Threads</b></p>
<p>This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.</p>
<p><b>Asserts</b></p>
<p>Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.</p>
<p><b>Building the driver</b></p>
<p>The <a class="el" href="struct_x_gpio_ps.html" title="The XGpioPs driver instance data. ">XGpioPs</a> driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary. <br/>
<br/>
</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who  Date     Changes
</p>
<hr/>
<p>
1.00a sv   01/15/10 First Release
1.01a sv   04/15/12 Removed the APIs XGpioPs_SetMode, XGpioPs_SetModePin
                    XGpioPs_GetMode, XGpioPs_GetModePin as they are not
              relevant to Zynq device.The interrupts are disabled
              for output pins on all banks during initialization.
1.02a hk   08/22/13 Added low level reset API
2.1   hk   04/29/14 Use Input data register DATA_RO for read. CR# 771667.
2.2     sk       10/13/14 Used Pin number in Bank instead of pin number
                                          passed to APIs. CR# 822636
3.00  kvn  02/13/15 Modified code for MISRA-C:2012 compliance.
3.1     kvn  04/13/15 Add support for Zynq Ultrascale+ MP. CR# 856980.
      ms   03/17/17 Added readme.txt file in examples folder for doxygen
                    generation.
      ms   04/05/17 Added tabspace for return statements in functions of
                    gpiops examples for proper documentation while
                    generating doxygen.
3.3   ms   04/17/17 Added notes about gpio input and output pin description
                    for zcu102 and zc702 boards in polled and interrupt
                    example, configured Interrupt pin to input pin for
                    proper functioning of interrupt example.
3.4   aru  08/17/18 Resolved MISRA-C mandatory violations. CR# 1007751
3.5   sne  03/01/19 Fixes violations according to MISRAC-2012
                    in safety mode and modified the code such as
                    Use of mixed mode arithmetic,Declared the pointer param
                    as Pointer to const,Casting operation to a pointer,
                    Literal value requires a U suffix.
3.5   sne  03/14/19 Added Versal support.
3.6   mus  04/05/19 Replaced XPLAT_versal macro with XPLAT_VERSAL, to be in
                    sync with standalone BSP
3.6     sne  06/12/19 Fixed IAR compiler warning.
3.6   sne  08/14/19 Added interrupt handler support on versal.
3.7     sne  12/04/19 Reverted versal examples support.
3.8   sne  08/28/20 Modify Makefile to support parallel make execution.
3.8     sne  09/17/20 Added description for Versal PS and PMC GPIO pins.
3.9     sne  03/15/21 Fixed MISRA-C violations.
3.11  sg   02/23/23 Update bank and pin mapping information.
3.12  gm   07/11/23 Added SDT support.
3.13  gm   03/15/24 Remove const of <a class="el" href="struct_x_gpio_ps.html" title="The XGpioPs driver instance data. ">XGpioPs</a> InstancePtr from function proto
                    type of XGpioPs_IntrEnable, XGpioPs_IntrDisable,
                    XGpioPs_IntrEnablePin and XGpioPs_IntrDisablePin
                    to add multi-core interrupt support.
3.14  bkv  02/20/25 Changed data type of effective address from u32 to UINTPTR
                    to support both 32-bit and 64-bit platforms.</pre><pre></pre> </div></div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
